package com.cenntro.common.base;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import java.util.Map;

public interface BaseService {

	
	
	public int insert(Object t);

	public <T> T selectById(Integer id);
	
	public <T> List<T> selectPage(Object t);
	
	public int selectCount(Object t);
	
	public int deleteById(Integer id);
	
	public int update(Object t);
	
//	/**
//	 * 根据关键属性查询 替换方法selectOne
//	 * */
//	@Deprecated
//	<T> T select4Condition(Object t);
	/**
     * <p> 根据 entity 条件，查询一条记录</p>
     * @param queryWrapper 实体对象
     */
    <T> T selectOne(Map<String, Object> columnMap);
    /**
     * <p> 根据 entity 条件，查询一条记录</p>
     * @param queryWrapper 实体对象
     */
    <T> T selectOne(Object t);
    /**
     * <p>根据 Id 删除</p>
     * @param id 主键Id
     */
//    int deleteById(Serializable id);
    /**
     * <p>删除（根据Id 批量删除）</p>
     * @param idList 主键Id列表(不能为 null 以及 empty)
     */
    int deleteBatchIds(Collection<? extends Serializable> idList);
    /**
     * <p> 查询（根据 columnMap 条件） </p>
     * @param columnMap 表字段 map 对象
     */
    <T> List<T> selectByMap(Map<String, Object> columnMap);
}
